'use strict';

exports.main = async (event, context) => {
  // 获取数据库引用
  const db = uniCloud.database();
  
  try {
    console.log('添加题目参数:', event);
    
    // 获取参数
    const { 
      title, 
      type,
      options,
      correct_option,
      correct_options,
      explanation,
      score,
      exam_id
    } = event;
    
    // 验证必填参数
    if (!title) {
      return {
        code: -1,
        message: '题目内容不能为空'
      };
    }
    
    if (type !== 'judge' && (!options || options.length < 2)) {
      return {
        code: -1,
        message: '选择题至少需要2个选项'
      };
    }
    
    // 准备保存的题目数据
    const questionData = {
      title,
      type,
      options: type === 'judge' ? [] : options,
      correct_answer: type === 'multiple' ? correct_options : correct_option,
      explanation: explanation || '',
      score: parseInt(score) || 5,
      create_date: new Date()
    };
    
    console.log('准备保存的题目数据:', questionData);
    
    // 保存到题库
    const result = await db.collection('exam_questions').add(questionData);
    
    // 如果提供了考试ID，则将题目关联到考试
    if (exam_id) {
      try {
        // 查询当前考试
        const examResult = await db.collection('exam_papers').doc(exam_id).get();
        if (examResult.data && examResult.data.length > 0) {
          const examPaper = examResult.data[0];
          const questions = examPaper.questions || [];
          
          // 添加新题目
          questions.push({
            ...questionData,
            _id: result.id
          });
          
          // 更新考试试卷
          await db.collection('exam_papers').doc(exam_id).update({
            questions,
            update_date: new Date()
          });
        }
      } catch (error) {
        console.error('关联题目到考试失败:', error);
        // 不影响主流程，继续返回成功
      }
    }
    
    return {
      code: 0,
      message: '题目添加成功',
      data: {
        id: result.id
      }
    };
  } catch (error) {
    console.error('添加题目出错:', error);
    return {
      code: -1,
      message: '添加题目失败: ' + error.message
    };
  }
}; 